home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / miscstat.arc / NTHORDRG.BAS < prev    next >
Encoding:
BASIC Source File  |  1986-04-25  |  2.1 KB  |  87 lines

  1. 1 'NTH ORDer ReGression
  2. 2 KEY OFF:SCREEN 0,1,0:WIDTH 40:COLOR 15,1,9:CLS
  3. 10  PRINT "NTH-ORDER REGRESSION"
  4. 20  PRINT 
  5. 30  DIM A(13),R(7,8),T(8)
  6. 40  PRINT "DEGREE OF EQUATION";
  7. 50  INPUT D:IF D<0 THEN 50 ELSE IF D=0 THEN 790
  8. 60  PRINT "NUMBER OF KNOWN POINTS";
  9. 70  INPUT N:IF N<1 THEN 70
  10. 80 A(1) = N
  11. 90  FOR I = 1 TO N
  12. 100  PRINT "X,Y OF POINT";I;
  13. 110  INPUT X,Y
  14. 120  FOR J = 2 TO 2 * D + 1
  15. 130 A(J) = A(J) + X ^ (J - 1)
  16. 140  NEXT J
  17. 150  FOR K = 1 TO D + 1
  18. 160 R(K,D + 2) = T(K) + Y * X ^ (K - 1)
  19. 170 T(K) = T(K) + Y * X ^ (K - 1)
  20. 180  NEXT K
  21. 190 T(D + 2) = T(D + 2) + Y ^ 2
  22. 200  NEXT I
  23. 210  FOR J = 1 TO D + 1
  24. 220  FOR K = 1 TO D + 1
  25. 230 R(J,K) = A(J + K - 1)
  26. 240  NEXT K
  27. 250  NEXT J
  28. 260  FOR J = 1 TO D + 1
  29. 270  FOR K = J TO D + 1
  30. 280  IF R(K,J) <  > 0 THEN 320
  31. 290  NEXT K
  32. 300  PRINT "NO UNIQUE SOLUTION"
  33. 310  GOTO 790
  34. 320  FOR I = 1 TO D + 2
  35. 330 S = R(J,I)
  36. 340 R(J,I) = R(K,I)
  37. 350 R(K,I) = S
  38. 360  NEXT I
  39. 370 Z = 1 / R(J,J)
  40. 380  FOR I = 1 TO D + 2
  41. 390 R(J,I) = Z * R(J,I)
  42. 400  NEXT I
  43. 410  FOR K = 1 TO D + 1
  44. 420  IF K = J THEN 470
  45. 430 Z =  - R(K,J)
  46. 440  FOR I = 1 TO D + 2
  47. 450 R(K,I) = R(K,I) + Z * R(J,I)
  48. 460  NEXT I
  49. 470  NEXT K
  50. 480  NEXT J
  51. 490  PRINT 
  52. 495  PRINT "             CONSTANT: ";R(1,D + 2)
  53. 500  FOR J = 1 TO D
  54. 510  PRINT J;"DEGREE COEFFICIENT: ";R(J + 1,D + 2)
  55. 520  NEXT J
  56. 530  PRINT 
  57. 540 P = 0
  58. 550  FOR J = 2 TO D + 1
  59. 560 P = P + R(J,D + 2) * (T(J) - A(J) * T(1) / N)
  60. 570  NEXT J
  61. 580 Q = T(D + 2) - T(1) ^ 2 / N
  62. 590 Z = Q - P
  63. 600 I = N - D - 1
  64. 610 J = P / K
  65. 620  PRINT 
  66. 630 J = P / Q
  67. 640  PRINT "COEFFICIENT OF DETERMINATION (R^2): "J
  68. 650  PRINT "COEFFICIENT OF CORRELATION: "; SQR (J)
  69. 660  PRINT "STANDARD ERROR OF ESTIMATE: " SQR ( ABS (Z / I))
  70. 670  PRINT 
  71. 680  PRINT "INTERPOLATION: (ENTER 0 TO END PROGRAM)"
  72. 690 P = R(1,D + 2)
  73. 700  INPUT "X = ",X
  74. 720  IF X = 0 THEN 790
  75. 730  FOR J = 1 TO D
  76. 740 P = P + R(J + 1,D + 2) * X ^ J
  77. 750  NEXT J
  78. 760  PRINT "Y = "P
  79. 770  PRINT 
  80. 780  GOTO 690
  81. 790 PRINT:LOCATE 24,1:PRINT"PRESS <SPACE> TO RUN AGAIN";
  82. 800 LOCATE 25,1:PRINT"PRESS <ESC> TO EXIT";
  83. 810 K$=INKEY$:IF K$="" THEN 810
  84. 820 IF K$=" " THEN RUN
  85. 830 IF K$<>CHR$(27) THEN 810
  86. 10000 RUN"MENU
  87.